t=marker.key
(1).time
t1=marker.key
(2).time
vel=(thisComp.layer("b
blanche").position.key(2)-thisComp.layer("b
blanche").position.key(1))/
(thisComp.layer("b
blanche").position.key(2).time-thisComp.layer("b
blanche").position.key(1).time)
vel1=position.velocityAtTime(t1)
u=thisComp.layer("b
noir").position.valueAtTime(t)-thisComp.layer("b
blanche").position.valueAtTime(t)
u1=length(vel)*normalize(u)
v=thisComp.layer("b
blanche").position.valueAtTime(t)-thisComp.layer("b
jaune").position.valueAtTime(t)
v1=length(vel)*normalize(v)
w=thisComp.layer("b
jaune").position.valueAtTime(t1)-thisComp.layer("b
rouge").position.valueAtTime(t1)
w1=length(vel)*normalize(w)
frot=-vel/30
A=position.value_at_time(t)
while(t<time){
t=t+this_comp.frame_duration,
A=
A+vel*this_comp.frame_duration
vel=
vel+frot
frot=-vel/30
if(A[1]<(this_comp.height-thisComp.layer("tapis
de billard.psd").height)/2+thisLayer.height) {vel[1]=-vel[1]}
if(A[1]>(this_comp.height-thisComp.layer("tapis
de billard.psd").height)/2+
thisComp.layer("tapis
de billard.psd").height-thisLayer.height) {vel[1]=-vel[1]}
if(A[0]>(this_comp.width-thisComp.layer("tapis
de billard.psd").width)/2+
thisComp.layer("tapis
de billard.psd").width-thisLayer.width) {vel[0]=-vel[0]}
if(A[0]<(this_comp.width-thisComp.layer("tapis
de billard.psd").width)/2+thisLayer.width) {vel[0]=-vel[0]}
if(length(A-thisComp.layer("b
blanche").position.valueAtTime(t))<thisLayer.height) [vel=-v1*5]
if(length(A-thisComp.layer("b
rouge").position.valueAtTime(t1))<thisLayer.height) [vel=w1]
}
if(time
< marker.key (1).time){A=position}
A